﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;

namespace vudu.PaginasWeb.G9Reporte
{
    public partial class Reporte : System.Web.UI.Page
    {
        public static string seccionSeleccionada;
        public static string materiaSeleccionada;
        public static string nombreMateria;
        public static Profesor miProfe = new Profesor();
        public static List<Practica> seccionPractica = new List<Practica>();
        public static List<SeccionMateria> seccionMateria = new List<SeccionMateria>();

        /// <summary>
        /// Se carga la pagina
        /// </summary>
        protected void Page_Load(object sender, EventArgs e)
        {
            //se valida que sea un profesor el que ingresa, sino se devuelve al inicio
            string miRol = (string)Session["rol"];

            if (miRol != "Profesor")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");

            if (!Page.IsPostBack)
            {
                //se carga la informacion del profesor y se llama a cargarmaterias al dropbox
                miProfe = (Profesor)Session["Usuario"];
                nombre.Text = miProfe.Nombre + " " + miProfe.Apellido;
                cedula.Text = Convert.ToString(miProfe.Cedula);
                Label1.Text = "Profesor(a): " + miProfe.Nombre + " " + miProfe.Apellido;
                CargarMateriasProfesor();

            }
        }

        /// <summary>
        /// Consulta todas las materias de un profesor y las carga en el dropbox
        /// </summary>
        public void CargarMateriasProfesor()
        {
            int i=0;
            int contador = 0;
            int j = 0;
            Logica.Clases.Reporte reporteProfesor = new Logica.Clases.Reporte();

            //se llama al metodo que busca todas las materias de un profesor
            seccionMateria = reporteProfesor.ConsultarMateria(miProfe.Cedula);
            List<String> materias = new List<String>();
            while (i < seccionMateria.Count)
            {
                j = 0;
                contador = 0;
                while (j < materias.Count)
                {
                    if (materias[j] == seccionMateria[i].Materia.Nombre)
                    {
                        contador++;
                    }
                   
                    j++;
                } 
                if (contador == 0) 
                {
                    //Se van cargando todas las materias en el dropdown
                    ListItem registroLista = new ListItem();
                    registroLista.Text = seccionMateria[i].Materia.Nombre;
                    registroLista.Value = "T" + seccionMateria[i].Materia.Nombre;
                    DropDownMateria.Items.Add(registroLista);
                    materias.Add(seccionMateria[i].Materia.Nombre);
                }
                i++;
            }

        }

        /// <summary>
        /// Consulta todas las secciones de una materia de un profesor y las carga
        /// en un dropdown
        /// </summary>
        public void CargarSeccionProfesor()
        {
            ListItem registroLista1 = new ListItem();
            registroLista1.Text = "- Selecciona -";
            registroLista1.Value = "0";
            DropDownSeccion.Items.Add(registroLista1);
            String seleccion = DropDownMateria.SelectedValue;
            String aux = seleccion.Substring(1, seleccion.Length - 1);
            String opcion = seleccion.Substring(0, 1);
            int i = 0;

            if (opcion == "T")
            {
                while (i < seccionMateria.Count)
                {
                    if (seccionMateria[i].Materia.Nombre == aux)
                    {
                        //Se cargan todas las secciones en el dropdown de secciones
                        ListItem registroLista = new ListItem();
                        registroLista.Text = Convert.ToString(seccionMateria[i].Codigo);
                        registroLista.Value = "T" + seccionMateria[i].IdSeccionMateria;
                        DropDownSeccion.Items.Add(registroLista);

                    }
                    i++;
                }

            }

        }

        /// <summary>
        /// Cada vez que se selecciona una materia se cambia el dropdown de seccion
        /// </summary>
        protected void DropDownMateria_SelectedIndexChanged(object sender, EventArgs e)
        {
            DropDownSeccion.Items.Clear();
            CargarSeccionProfesor();
        }

        /// <summary>
        /// El boton siguiente se utiliza para pasar a la otra pagina mandando la seccion seleccionada
        /// </summary>
        protected void Siguiente_Click(object sender, EventArgs e)
        {
            materiaSeleccionada = DropDownMateria.SelectedValue;
            seccionSeleccionada = DropDownSeccion.SelectedValue;
            nombreMateria = "Materia: " + materiaSeleccionada.Substring(1,materiaSeleccionada.Length-1);
            Label5.Text = "";
            Label6.Text = "";
            //Se valida que el dropdown no este vacio
            if (!DropDownSeccion.SelectedIndex.Equals(0))
            {
                Response.Redirect("../G9Reporte/ReporteSeleccion.aspx");
            }
            else
            {
                if (DropDownMateria.SelectedIndex.Equals(0))
                {
                    Label5.Text = "Seleccione Materia";
                    Label5.ForeColor = System.Drawing.Color.Red;
                }
                if (DropDownSeccion.SelectedIndex.Equals(0))
                {
                    Label6.Text = "Seleccione Sección";
                    Label6.ForeColor = System.Drawing.Color.Red;
                }
            }
        }
    }
}